//main() {
//  //使用关键字var定义,变量会根据值自动推导类型
//  var apple = "苹果";
//  //使用精确类型定义
//  String banana = "香蕉";
//  //使用动态变量关键字
//  dynamic any = "水果";
//  any = 1;
//  /**
//   * 注意:使用var和精确类型定义的变量,类型一旦确定便不可修改,如果对apple赋值apple = 1
//   * 会导致编译错误.但是dynamic关键字修饰的变量可以动态的确定类型,如对any赋值any = 1时允许的.
//   * 打印输出结果为:
//   * 苹果
//   * 香蕉
//   * 1
//   */
//  print(apple);
//  print(banana);
//  print(any);
//}

main() {
  // var k = 10;
  /**
   * final和const的区别:final是运行时常量,意味着可以在运行时根据需求进行赋值.
   * const是编译时常量.也就是定义const常量的时候必须给出准确的值.
   * 下面代码const j = k * 10;编译出错.
   */
  // final i = k * 10;
//  const j = k * 10;
//   const m = 10;

  var test = [1, 2, 3];
  List<int> list = [...test];

  print(list.toString());

  test.add(4);

  print(list.toString());
  String str = "";
  print(str.isEmpty);
}
